Domain-adversarial training of neural networks